﻿using System;

namespace Xenta.Enums
{
    /// <summary>
    /// Defines the account flags.
    /// </summary>
    [Flags]
    public enum AccountFlags
    {
        /// <summary>
        /// Indicates no flags.
        /// </summary>
        None = 0x00000000,

        #region S

        /// <summary>
        /// Indicates that an entity is active.
        /// </summary>
        Active = 0x00000001,

        /// <summary>
        /// Verification is passed.
        /// </summary>
        Verified = 0x00000002

        #endregion
    }

    /// <summary>
    /// Defines the country flags.
    /// </summary>
    [Flags]
    public enum CountryFlags
    {
        /// <summary>
        /// Indicates no flags.
        /// </summary>
        None = 0x00000000,

        #region S

        /// <summary>
        /// Indicates that an entity is active.
        /// </summary>
        Active = 0x00000001

        #endregion
    }

    /// <summary>
    /// Defines the time zone flags.
    /// </summary>
    [Flags]
    public enum TimeZoneFlags
    {
        /// <summary>
        /// Indicates no flags.
        /// </summary>
        None = 0x00000000,

        #region S

        /// <summary>
        /// Indicates that an entity is active.
        /// </summary>
        Active = 0x00000001

        #endregion
    }

    /// <summary>
    /// Defines the language flags.
    /// </summary>
    [Flags]
    public enum LanguageFlags
    {
        /// <summary>
        /// Indicates no flags.
        /// </summary>
        None = 0x00000000,

        #region S

        /// <summary>
        /// Indicates that an entity is active.
        /// </summary>
        Active = 0x00000001,

        #endregion

        #region G1

        /// <summary>
        /// Indicates left-to-right language.
        /// </summary>
        LTR = 0x00000010,

        /// <summary>
        /// Indicates right-to-left language.
        /// </summary>
        RTL = 0x00000020

        #endregion
    }

    /// <summary>
    /// Defines the localization profile flags.
    /// </summary>
    [Flags]
    public enum LocalizationProfileFlags
    {
        /// <summary>
        /// Indicates no flags.
        /// </summary>
        None = 0x00000000,

        #region S

        /// <summary>
        /// Indicates that an entity is active.
        /// </summary>
        Active = 0x00000001,

        #endregion

        #region O

        /// <summary>
        /// Indicates that public access is allowed.
        /// </summary>
        Public = 0x00010000

        #endregion
    }

    /// <summary>
    ///   Defines the log record flags.
    /// </summary>
    [Flags]
    public enum LogRecordFlags
    {
        /// <summary>
        ///   Indicates no flags.
        /// </summary>
        None = 0x00000000,

        #region G1

        /// <summary>
        ///   The record has low severity.
        /// </summary>
        Low = 0x00000010,

        /// <summary>
        ///   The record has medium severity.
        /// </summary>
        Medium = 0x00000020,

        /// <summary>
        ///   The record has high severity.
        /// </summary>
        High = 0x00000040,

        /// <summary>
        ///   The record has critical severity.
        /// </summary>
        Critical = 0x00000080,

        #endregion

        #region G2

        /// <summary>
        ///   The record contains an information.
        /// </summary>
        Information = 0x00000400,

        /// <summary>
        ///   The record contains a warning.
        /// </summary>
        Warning = 0x00000800,

        /// <summary>
        ///   The record contains an error.
        /// </summary>
        Error = 0x00001000

        #endregion
    }

    /// <summary>
    /// Defines the measure unit flags.
    /// </summary>
    [Flags]
    public enum MeasureUnitFlags
    {
        /// <summary>
        /// Indicates no flags.
        /// </summary>
        None = 0x00000000,

        #region S

        /// <summary>
        /// Indicates that an entity is active.
        /// </summary>
        Active = 0x00000001,

        #endregion

        #region G1

        /// <summary>
        /// The measure unit is a measure of weight.
        /// </summary>
        Weight = 0x00000010,

        /// <summary>
        /// The measure unit is a measure of dimension.
        /// </summary>
        Dimension = 0x00000020,

        /// <summary>
        /// The measure unit is a measure of information.
        /// </summary>
        Information = 0x00000040

        #endregion
    }

    /// <summary>
    /// Defines the message flags.
    /// </summary>
    [Flags]
    public enum MessageFlags
    {
        /// <summary>
        /// Indicates no flags.
        /// </summary>
        None = 0x00000000,

        #region S

        /// <summary>
        /// Indicates that an entity is active.
        /// </summary>
        Active = 0x00000001

        #endregion
    }

    /// <summary>
    /// Defines the message template flags.
    /// </summary>
    [Flags]
    public enum MessageTemplateFlags
    {
        /// <summary>
        /// Indicates no flags.
        /// </summary>
        None = 0x00000000,

        #region S

        /// <summary>
        /// Indicates that an entity is active.
        /// </summary>
        Active = 0x00000001

        #endregion
    }

    /// <summary>
    /// Defines the permission flags.
    /// </summary>
    [Flags]
    public enum PermissionFlags
    {
        /// <summary>
        /// Indicates no flags.
        /// </summary>
        None = 0x00000000,

        #region S

        /// <summary>
        /// Indicates that an entity is active.
        /// </summary>
        Active = 0x00000001

        #endregion
    }

    /// <summary>
    /// Defines the region flags.
    /// </summary>
    [Flags]
    public enum RegionFlags
    {
        /// <summary>
        /// Indicates no flags.
        /// </summary>
        None = 0x00000000,

        #region S

        /// <summary>
        /// Indicates that an entity is active.
        /// </summary>
        Active = 0x00000001

        #endregion
    }

    /// <summary>
    /// Defines the role flags.
    /// </summary>
    [Flags]
    public enum RoleFlags
    {
        /// <summary>
        /// Indicates no flags.
        /// </summary>
        None = 0x00000000,

        #region S

        /// <summary>
        /// Indicates that an entity is active.
        /// </summary>
        Active = 0x00000001

        #endregion
    }

    /// <summary>
    /// Defines the session flags.
    /// </summary>
    [Flags]
    public enum SessionFlags
    {
        /// <summary>
        /// Indicates no flags.
        /// </summary>
        None = 0x00000000
    }

    /// <summary>
    /// Defines the file group flags.
    /// </summary>
    [Flags]
    public enum FileGroupFlags
    {
        /// <summary>
        /// Indicates no flags.
        /// </summary>
        None = 0x00000000,

        #region S

        /// <summary>
        /// Indicates that an entity is active.
        /// </summary>
        Active = 0x00000001,

        #endregion

        #region O

        /// <summary>
        /// Indicates that public access is allowed.
        /// </summary>
        Public = 0x00010000

        #endregion
    }

    /// <summary>
    /// Defines the file owner flags.
    /// </summary>
    [Flags]
    public enum FileOwnerFlags
    {
        /// <summary>
        /// Indicates no flags.
        /// </summary>
        None = 0x00000000,

        #region S

        /// <summary>
        /// Indicates that an entity is active.
        /// </summary>
        Active = 0x00000001

        #endregion
    }

    /// <summary>
    /// Defines the file folder flags.
    /// </summary>
    [Flags]
    public enum FileFolderFlags
    {
        /// <summary>
        /// Indicates no flags.
        /// </summary>
        None = 0x00000000,

        #region S

        /// <summary>
        /// Indicates that an entity is active.
        /// </summary>
        Active = 0x00000001,

        #endregion

        #region O

        /// <summary>
        /// Indicates that public access is allowed.
        /// </summary>
        Public = 0x00010000

        #endregion
    }

    /// <summary>
    /// Defines the file flags.
    /// </summary>
    [Flags]
    public enum FileFlags
    {
        /// <summary>
        /// Indicates no flags.
        /// </summary>
        None = 0x00000000,

        #region S

        /// <summary>
        /// Indicates that an entity is active.
        /// </summary>
        Active = 0x00000001,

        #endregion

        #region O

        /// <summary>
        /// Indicates that public access is allowed.
        /// </summary>
        Public = 0x00010000

        #endregion
    }

    /// <summary>
    /// Defines the currency flags.
    /// </summary>
    [Flags]
    public enum CurrencyFlags
    {
        /// <summary>
        /// Indicates no flags.
        /// </summary>
        None = 0x00000000,

        #region S

        /// <summary>
        /// Indicates that an entity is active.
        /// </summary>
        Active = 0x00000001

        #endregion
    }
}
